// 扩展2.cin.getline()

#include <iostream>
#define __mark 1

/**
 * #1 cin.ignore(cin,str)的使用
 * 对于 cin 的操作 使用 getline(cin，str)往往可以实现更加简单以及安全的字符串操作,不同于 cin.getline(char*, int a)，前者可以直接对字符串进行操作。
*/
#if __mark == 1
#include <fstream>
#include <string>
int main(void)
{
  std::fstream fs;
  std::string bookName;
  std::string bookWriter;
  fs.open("afile.dat",std::ios::trunc | std::ios::out);
  std::cout << "please enter book's name : ";
  std::getline(std::cin,bookName);
  fs << bookName << std::endl;

  std::cout << "please enter book's writer : ";
  std::getline(std::cin,bookWriter);
  fs << bookWriter << std::endl;
  fs.close();

  fs.open("afile.dat",std::ios::in);

  std::string str;
  while(std::getline(fs,str)){
    std::cout << "book's info : " << str << std::endl;
  }


  printf("--------------end--------------\n");
  return 0;
}

/**
 * #2
*/

#elif __mark == 2

int main(void)
{
  printf("--------------end--------------\n");
  return 0;
}

#endif